package com.ssm.sport.service;

import com.ssm.sport.entity.Shipping;

import java.util.List;

/**
 * 收货地址服务接口
 */
public interface ShippingService {
    
    /**
     * 添加收货地址
     * @param userId 用户ID
     * @param shipping 收货地址
     * @return 新增的收货地址ID
     */
    Integer add(Integer userId, Shipping shipping);
    
    /**
     * 删除收货地址
     * @param userId 用户ID
     * @param shippingId 收货地址ID
     * @return 是否成功
     */
    boolean delete(Integer userId, Integer shippingId);
    
    /**
     * 更新收货地址
     * @param userId 用户ID
     * @param shipping 收货地址
     * @return 是否成功
     */
    boolean update(Integer userId, Shipping shipping);
    
    /**
     * 获取收货地址详情
     * @param userId 用户ID
     * @param shippingId 收货地址ID
     * @return 收货地址对象
     */
    Shipping getById(Integer userId, Integer shippingId);
    
    /**
     * 获取用户所有收货地址
     * @param userId 用户ID
     * @return 收货地址列表
     */
    List<Shipping> getByUserId(Integer userId);
    
    /**
     * 获取用户默认收货地址
     * @param userId 用户ID
     * @return 默认收货地址，如没有则返回null
     */
    Shipping getDefaultShipping(Integer userId);
    
    /**
     * 设置默认收货地址
     * @param userId 用户ID
     * @param shippingId 收货地址ID
     * @return 是否成功
     */
    boolean setDefault(Integer userId, Integer shippingId);
} 